		--==WOJ2==--
	--==PROUDLY      PRESENTS==--
--==CracKME  #o1  by  tEo/CHInc.  TUTORIAL==--
	--==      17.06.2005     ==--
                --==cRaCk==--


---------------------------------------------

Co: CracKME #o1 by tEo/CHInc.
Czym: SoftIce, win32asm (do listingu), ewentualnie Cracker's Calculator by QUASAR/HTB
Poziom: Newbies
Wynik: key

---------------------------------------------

(Polecam czytanie w Notatniku, z zawijaniem wierszy, ale jak nie lubisz to nie:P)

No to znowu ja:P W tym tutorialku raczej nie znajdziesz nic ciekawego, ale jesli Ci zalezy to czytaj dalej:) No wiec dzis pod motek bierzemy CracKME #o1 by tEo/CHInc. Jak napisal autor i ja, crackme przeznaczone jest dla Newbies, wiec jesli tylko masz jakis pojecie o asmie to sprobuj cos zrobic bez czytania tego tutka:P
.
.
.
.
.
.
.
.
.
.
.
Czytasz dalej?? Wiec sprobowales i nie dales rady?? Oki to bierzemy si do roboty! Autor napisal jasno "Just find right password PATCHING NOT ALLOWED !", wic zadanie jest jasne musimy znalezc odpowiednie haselko. Uruchamiamu crakmesia, pokazuje sie about, kilk w OK i mamy okienko i edita, gdzie wpisuje my haselko. Ok ja wpisuje sobie "crackme bedzie zlamane;)". Ale co to nie ma adnego przycisku aby potwierdzic haselko..... Poprostu programik sprawdza je za kazdym razem jak cos wpiujemy. Wiec ustawiamy pulapke na GetDlgItemTextA no i faktycznie wrzuca nas do SI i oto co ukazuje sie naszym oczom:))

(programik sprawdza haselko kawalkami, wiec tak tez bede podawal kod)

:00401121	test eax, eax		//sprawdza czy cos wpisalismy
:00401123	jz 004011A0		//jesli nie to badboy
:00401125	cmp eax, 00000010	//sprawdza czy to co wpisalismy = 10h = 16d
:00401128	jnz 004011A0		//jesli nie to badboy

Ten kawalek jest raczej jasny poprostu musimy wpisac 16 literowe haslo to wiec wpisujemy 3010199030101990. Okej teraz przejdziemy dalej.

:0040112A	mov eax, 004031F0		//do eax nasze haselko (po co? - nie wiem:))
:0040112F	mov eax, dword ptr [004031F0]	//do eax cztery litery hasla
:00401134	rol eax, 09			//
:00401137	xor eax, 00000003		//OBLICZENIA
:0040113A	add eax, 99999999		//
:0040113F	cmp eax, 31DA2C36		//porownoje 4 litery hasla po obliczeniach z 31DA2C36
:00401144	jnz 004011A0			//jesli nie rowne to badboy

No i teraz bierzemy sie do prawdziwego lamania:P Program bierze 4 litery haselka, robi na nich jakies eXperymenty:) i porownoje z 31DA2C36. Hmm. Mozna to zrobic na dwa podobne sposoby, ale obydwa polegaja na tym samym:) no moze nie do konca... Na samym pocztku musimy sobie to wszystko odwrcic. Jesli na koncu w eax musi byc 31DA2C36... Wiec po odwroceniu na poczatku w eax musi byc 31DA2C36. Pozniej "add eax, 99999999", wiec po odwroceniu w drugiej linijce odwrocone go kodu bedzie "sub eax, 99999999" i tak dalej. Zeby nie motac podaje kod:

mov eax, 31DA2C36
sub eax, 99999999
xor eax, 03
ror eax, 09

Okej, ale co z tym zrobic?? I teraz mamy wybor: albo w SI wpisujemy a i wklepujemy kod (najlepiej w srodku crackme, bo jak zrobisz to w srodku jakiegos systemowego progsa mozesz zwiecic kompter:)) i po jego wykonaniu (F8) sprawdzamy co jest w EAX (? EAX). A jeszcze drugi sposob, troche bardziej pracochlonny, ale jak ktos lubi to prosze bardzo. A wiec literki policzymy sobie w Cracker's Calculator by QUASAR/HTB. Oczywiscie MOV wykonujemy w glowie (chyba macie tam wystarczajco szybkie procki:)) no i dalej wklepujemy dalsze instrukcje i wynik wpisujemy do SI w takiej postaci "? wynik). Tak czy siak mamy 4 pierwsze literki hasla!!!! SI podaje je odwrocone, wiec czytajac od konca dostajemy: "I LO"
Aha i tak zeby rozwiac watpliwosci niektorych: na miejsce XOR wpisujemy XOR, on sie nie zmiena:))
Pewnie domyslasz co bedzie dalej... Spokojnie to nie ma zwiazku z tym wirusem:) Okej bierzemy sie za nastepne 4 litery (bez skojazen prosze:))

:00401146	mov eax, dword ptr [004031F4]	//nastepne 4 literki hasla do eax
:0040114B	xor eax, 00000009		//
:0040114E	rol eax, 09			//OBLICZENIA
:00401151	add eax, 00123321		//
:00401156	cmp eax, 409CF1C9		//sprawdza czy 4 litery po obliczeniach sa rowne 409CF1C9
:0040115B	jnz 004011A0			//jak nie to badboy

Okej chyba jasne co trzeba zrobic:)) nie bede sie rozpisywal tylko podaje kod:

mov eax, 409CF1C9
sub eax, 00123321
ror eax, 09
xor eax, 09

No i liczac ktorymkolwiek sposobem otrzymujemy kolejne literki, ktore odwracamy i dostajemy "VE T". Jedziemy dalej.

:0040115D	mov eax, dword ptr [004031F8]	//znowu 4 literki do eax
:00401162	sar eax, 09			//
:00401165	xor eax, 00000003		//OBLICZENIA
:00401168	add eax, 31323334		//
:0040116D	cmp eax, 31425CDB		//sprawdza czy literki po obliczeniach = 31425CDB
:00401172	jne 004011A0			//jesli nie to skok do badboy

Przy odwracaniu tego kawalka kodu, trafiamy na "sar". Jak sie pewnie domyslasz jego odwrotnosc do "sal", ale co ciekawe sal=shr. No wiec czy wpiszesz sal czy shr to mi ani komputerowi nie robi roznicy:)

mov eax, 31425CDB
sub wax, 31323334
xor eax, 03
sal/shr eax, 09

Znowu po odwroceniu wyniku w eax dostajemy cztery literki i sa to " HS ". Nastepny kawalek kodu:

:00401174	mov eax, dword ptr [004031FC]	//kolejne (tym razem juz ostatnie) 4 literki
:00401179	shr eax, 07			//
:0040117C	add eax, 05555555		//OBLICZENIA
:00401181	xor eax, 00000087		//
:00401186	cmp eax, 05DFEF50		//jesli eax po obliczeniach = 05DFEF50
:0040118B	jne 004011A0			//to skok do badboy

No i zeby nie przedluzac podaje odwrocony kodzik:

mov eax, 05DFEF50
xor eax, 00000087
sub eax, 05555555
shl eax, 07

NO I NARESZCIE KONIEC!!! Odwracamy 4 ostatnie literki, sklasamy do kupy z reszta i dostajemy: "I LOVE T HS  AME"
No i jeszcze cos takiego: zamiast 9 litery moze byc cokolwiek, zamiast 10 H lub I i zamiast 13 cokolwiek.
Jak sie pewnie domyslasz najbardziej prawidlowe haslo brzmi: "I LOVE THIS LAME" (tEo moze Ty tak, ale ja nie:))

A na koniec taki TIPS:) Powinien byc na poczatku, ale to taka nagroda dla czytajacych do samego konca:P Jak programik sprawdza haslo czesciami (tak jak ten) to zamiast za kadym razem wpisywac kawalki dobrego haselka zeby sie wykonywaly skoki JZ lub JNZ mozna poprostu zmieniac flage Z (w SI "r fl Z").

No i to ju naprawde koniec. Sorry ze tak nudzilem i ze to ogolnie takie dlugie wyszlo, ale niestety ja tak mam, ale walcze z tym:) Jesli masz jakies watpliwosci, pytania, znalazles jakies bledy lub poprostu chcesz pogadac mail-me: woj2s@vp.pl. 

---------------------------------------------------------------------------------------------

Teraz to co wszyscy lubi najbardziej, czyli
GREETZY:)

  GGGG   RRRR   EEEEEE  EEEEEE  TTTTTTT  ZZZZZZ
GG    G  R   R  E       E          T         Z 
G        R   R  EEE     EEE        T        Z
G   GGG  RRRR   EEE     EEE        T       Z
GG   GG  R  R   E       E          T      Z
 GGGGG   R   R  EEEEEE  EEEEEE     T     ZZZZZZ


  GGGG     OOOO    EEEEEE  ZZZZZZ
GG    G   O    O   E           Z
G        O      O  EEE        Z
G   GGG  O      O  EEE       Z
GG   GG   O    O   E        Z
 GGGGG     OOOO    EEEEEE  ZZZZZZ


TTTTTTT    OOOO
   T      O    O
   T     O      O
   T     O      O
   T      O    O
   T       OOOO


tEo (4 crackme)
Iczelion (4 gr8 asm tutorial)
Quasar (4 Calc)

&

Ufcio, ReWolf, Butthead, Smola, Jube, Smola, Jopas, Veneta, Strength

&

all Polish crackers & crack teams
You keep crack scene alife...